#ifndef _ZLER_CIRCLE_LINK_LIST_H_
#define _ZLER_DOUBLE_LINK_LIST_H_

typedef void CircleList;

typedef struct _TagCircleListNode
{
       struct _TagCircleListNode* next;
} CircleListNode;

CircleList* CircleList_Create();

void CircleList_Destory(CircleList* list);

void CircleList_Clear(CircleList* list);

int CircleList_Length(CircleList* list);

int CircleList_Insert(CircleList* list, CircleListNode* node, int pos);

CircleListNode* CircleList_Get(CircleList* list, int pos);

CircleListNode* CircleList_Delete(CircleList* list, int pos);

//add

CircleListNode* CircleList_DeleteNode(CircleList*list, CircleListNode* node);

CircleListNode* CircleList_Reset(CircleList* list); //游标相当于迭代器 就是指针 指向一个链表的位置

CircleListNode* CircleList_Current(CircleList* list); //游标

CircleListNode* CircleList_Next(CircleList* list); //移动游标

#endif